/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.bizfty.api.apimanager;

import com.bizfty.api.apimanager.beans.DeleteDomainRequest;
import com.bizfty.api.apimanager.beans.DeleteDomainResponse;
import com.bizfty.api.apimanager.beans.DeleteModelRequest;
import com.bizfty.api.apimanager.beans.DeleteModelResponse;
import com.bizfty.api.commons.beans.MediaType;
import com.bizfty.api.commons.beans.faults.BusinessException;
import com.bizfty.api.commons.beans.faults.TechnicalException;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.xml.ws.Action;
import javax.xml.ws.FaultAction;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;
import javax.xml.ws.soap.MTOM;

/**
 *
 * @author johns
 */
@WebService(targetNamespace = "http://gateways.apimanager.api.bizfty.com", name = "ApiMgmt")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
@MTOM
@Path("/")
public interface ApiMgmt {
    /**
     * 删除领域
     */
    @POST
    @Path("/deleteDomain")
    @Consumes(MediaType.APPLICATION_JSON_VALUE)
    @Produces(MediaType.APPLICATION_JSON_UTF8_VALUE)
    @WebMethod(operationName = "deleteDomain", action = "http://gateways.apimanager.api.bizfty.com/ApiMgmt/deleteDomain")
    @WebResult(name = "DeleteDomainResponse", partName = "deleteDomainResponse", targetNamespace = "http://beans.apimanager.api.bizfty.com")
    @RequestWrapper(localName = "deleteDomain", partName = "deleteDomainRequestWrapper", targetNamespace = "http://beans.apimanager.api.bizfty.com", className = "com.bizfty.api.apimanager.beans.DeleteDomainRequestWrapper")
    @ResponseWrapper(localName = "deleteDomainResponse", partName = "deleteDomainResponseWrapper", targetNamespace = "http://beans.apimanager.api.bizfty.com", className = "com.bizfty.api.apimanager.beans.DeleteDomainResponseWrapper")
    @Action(input = "http://gateways.apimanager.api.bizfty.com/ApiMgmt/deleteDomainRequest", output = "http://gateways.apimanager.api.bizfty.com/ApiMgmt/deleteDomainResponse", fault = {
        @FaultAction(className = BusinessException.class, value = "http://faults.beans.commons.api.bizfty.com/BusinessException"),
        @FaultAction(className = TechnicalException.class, value = "http://faults.beans.commons.api.bizfty.com/TechnicalException")
    })
    public DeleteDomainResponse deleteDomain(@WebParam(name = "DeleteDomainRequest", targetNamespace = "http://beans.apimanager.api.bizfty.com") DeleteDomainRequest request) throws BusinessException, TechnicalException;

    /**
     * 删除模型
     */
    @POST
    @Path("/deleteModel")
    @Consumes(MediaType.APPLICATION_JSON_VALUE)
    @Produces(MediaType.APPLICATION_JSON_UTF8_VALUE)
    @WebMethod(operationName = "deleteModel", action = "http://gateways.apimanager.api.bizfty.com/ApiMgmt/deleteModel")
    @WebResult(name = "DeleteModelResponse", partName = "deleteModelResponse", targetNamespace = "http://beans.apimanager.api.bizfty.com")
    @RequestWrapper(localName = "deleteModel", partName = "deleteModelRequestWrapper", targetNamespace = "http://beans.apimanager.api.bizfty.com", className = "com.bizfty.api.apimanager.beans.DeleteModelRequestWrapper")
    @ResponseWrapper(localName = "deleteModelResponse", partName = "deleteModelResponseWrapper", targetNamespace = "http://beans.apimanager.api.bizfty.com", className = "com.bizfty.api.apimanager.beans.DeleteModelResponseWrapper")
    @Action(input = "http://gateways.apimanager.api.bizfty.com/ApiMgmt/deleteModelRequest", output = "http://gateways.apimanager.api.bizfty.com/ApiMgmt/deleteModelResponse", fault = {
        @FaultAction(className = BusinessException.class, value = "http://faults.beans.commons.api.bizfty.com/BusinessException"),
        @FaultAction(className = TechnicalException.class, value = "http://faults.beans.commons.api.bizfty.com/TechnicalException")
    })
    public DeleteModelResponse deleteModel(@WebParam(name = "DeleteModelRequest", targetNamespace = "http://beans.apimanager.api.bizfty.com") DeleteModelRequest request) throws BusinessException, TechnicalException;

}
